package com.powernode.util;

import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

/**
 * @author terrylv
 * @since 2022-09-14
 *  线程池：  线程管理  线程的复用  可以通过控制线程池的数量来控制并发数量
 *  核心参数：
 *     最大线程数量：
 *     核心线程数量：
 *     空闲时间：
 *     时间单位：
 *     线程工厂：
 *     任务队列： 基于链表  基于数组  同步的队列
 *     拒绝策略： 4种
 */
public class ProdThreadUtil {
    public  static ThreadPoolExecutor esImportThreadPool(){
        return  new ThreadPoolExecutor(
                5,
                Runtime.getRuntime().availableProcessors(),
                30,
                TimeUnit.SECONDS,
                new LinkedBlockingDeque<>(20));
    }
}
